約 4,390,926 件
https://w.atwiki.jp/volo/pages/38.html
V1.0 http //oauth.net/core/1.0/ 3. 定義 サービス・プロバイダ(Service Provider) OAuth経由でアクセスを許可されるウェブアプリケーション。 ユーザ(User) サービス・プロバイダにアカウントを持つ一個人。 コンシューマ(Consumer) ユーザの替わりに、OAuthを使ってサービス・プロバイダにアクセスするウェブ・サイトあるいはアプリケーション。 保護された資源(群)(Protected Resource(s)) サービス・プロバイダが管理するデータ、コンシューマが認証後にアクセスする。 コンシューマ・デベロッパ(Consumer Developer) コンシューマを実装する個人あるいは組織 コンシューマ鍵(Consumer Key) サービスプロバイダに対して、コンシューマが自己証明するために用いる値 コンシューマ・シークレット(Consumer Secret) コンシューマ鍵の所有権を確立するためにコンシューマが用いる秘密データ。 リクエスト・トークン(Request Token) コンシューマがユーザからの認可を獲得するために用いる値で、アクセス・トークンと交換される。 アクセス・トークン(Access Token) コンシューマが、ユーザの替わりに保護された資源群へのアクセスを獲得するために用いる値で、ユーザのサービスプロバイダーの証明情報(Credentials)の替わりに用いられる。 トークン・シークレット(Token Secret) コンシューマが、与えられたトークンの所有権を確立するために用いる秘密データ。 OAuthプロトコル・パラメータ(OAuth Protocol Parameters) oauth_で始まる名前をもつパラメータ 4. 文書化と登録 OAuth includes a Consumer Key and matching Consumer Secret that together authenticate the Consumer (as opposed to the User) to the Service Provider. Consumer-specific identification allows the Service Provider to vary access levels to Consumers (such as un-throttled access to resources). OAuthは、サービス・プロバイダに対して、 Service Providers SHOULD NOT rely on the Consumer Secret as a method to verify the Consumer identity, unless the Consumer Secret is known to be inaccessible to anyone other than the Consumer and the Service Provider. The Consumer Secret MAY be an empty string (for example when no Consumer verification is needed, or when verification is achieved through other means such as RSA). 4.1. Request URLs OAuthでは3つのリクエストURLを定義する。 Request Token URL 未承認のリクエスト・トークン(6.1節参照)を取得するために用いる。 User Authorization URL コンシューマのアクセスに対するユーザの認可を取得するために用いる。(6.2節参照) Access Token URL ユーザ認可済みのリクエスト・トークンをアクセス・トークンと交換するために用いる。(6.3節参照) これら3つのURLは、スキーム、オーソリティ、およびパスを 含むことが必須であり 、クエリおよびRFC3986の第3章で定義されるフラグメントを 含んでもよい 。リクエストURLのクエリは、いかなるOAuthプロトコル・パラメータを 含んではならない 。例えば、 http //sp.example.com/authorize 4.2. Service Providers サービスプロバイダの責務は、コンシューマの開発者が、コンシューマ鍵とコンシューマ秘密情報を設置する(証明する??)ことを可能にすることである。 これら鍵と秘密データの準備に関する処理と要求は、もっぱらサービスプロバイダの義務である。 プロバイダの文書は以下の項目を含む。 OAuthリクエスト作成時にコンシューマが使うURL(リクエストURL)と、トークンURLとアクセストークンURLで用いられるHTTPメソッド(例:GET,POSTなど) サービスプロバイダがサポートする署名方法 サービスプロバイダがトークンを取得するために必要とするすべてのパラメータ。サービスプロバイダ固有のパラメータはoauth_で始まってはいけない。 4.3. Consumers コンシューマ・デベロッパは、コンシューマ鍵とコンシューマ・シークレットをサービス・プロバイダとの間で 確立しなければならない 。 コンシューマ・デベロッパは、サービスプロバイダに対して付加情報を登録時に提供する必要がある場合がある。 5. Parameters OAuthプロトコル・パラメータの名前、値はそれぞれ大文字・小文字を区別する。 OAuthプロトコル・パラメータは、一つのリクエスト中に複数回表れてはいけない。また??? and are REQUIRED unless otherwise noted. 5.1. Parameter Encoding すべてのパラメータ名および値は、 [RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI) Generic Syntax,” .参照)の%エンコード機構を用いてエスケープされる。 予約 されていない文字セット([RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI) Generic Syntax,” . の2.3節参照)にない文字(群)は、エンコードしなければならない。 予約 されていない文字セットに含まれる文字(群)は、エンコードしてはならない。 16進文字はエンコード結果中で大文字でなければならない。 Text名と値は、%エンコードより前にUTF-8でエンコードしなければならない[RFC3629] (Yergeau, F., “UTF-8, a transformation format of Unicode and ISO 10646,” .参照)。 unreserved = ALPHA, DIGIT, - , . , _ , ~ 5.2. Consumer Request Parameters OAuthプロトコル・パラメータは、以下のいずれかの手法でコンシューマからサービス・プロバイダーに送られる。(1から3は望ましい順) OAuth HTTP認可スキームで定義されるHTTP認可ヘッダ中で HTTP POSTのボディ中で、Content-Typeをapplication/x-www-form-urlencodedとして。 URLクエリに追加([RFC3986] (Berners-Lee, T., “Uniform Resource Identifiers (URI) Generic Syntax,” .) section 3参照) その他のパラメータを送る方法は未定義のままであるが、OAuth HTTP認可スキームでのヘッダを用いるべきではない。 5.3. Service Provider Response Parameters レスポンス・パラメータはサービス・プロバイダによって送信され、トークンとその他の情報をコンシューマに、HTTPレスポンス・ボディ中に返す。 パラメータ名と値は、最初にパラメータ・円コーディングされ、「 」文字で結合される。(Berners-Lee, T., “Uniform Resource Identifiers (URI) Generic Syntax,” .) Section 2.1参照) 例えば、 oauth_token=ab3cd9j4ks73hf7g oauth_token_secret=xyz4992k83j47x0b 5.4. OAuth HTTP Authorization Scheme 本節では、OAuthをサポートするための[RFC2617] (Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, “HTTP Authentication Basic and Digest Access Authentication,” .)に対する拡張を定義する。 この定義は、OAuthプロトコル・パラメータを引き渡すため、標準のHTTP AuthorizationおよびWWW-Authenticateヘッダを使用する。 サービス・プロバイダは、HTTP Authorizationヘッダを受け入れることが推奨される。コンシューマは、OAuthプロトコル・パラメータをOAuth Authorization ヘッダ中にいれて送るべきである。 auth-scheme拡張はOAuthであり、大文字小文字を判別する。 5.4.1. Authorization Header OAuthプロトコル・パラメータは、Authorizationヘッダ中で、以下のように送られる。 OPTIONAL linear whitespace per [RFC2617] (Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, “HTTP Authentication Basic and Digest Access Authentication,” .). パラメータ名と値をパラメータ・エンコーディング パラメータそれぞれについて、名前の直後に「=」、引き続き「 」、パラメータ値(空でも良い)、最後に「 」を結合する。 パラメータはコンマで分割され、 オプションのrealmパラメータが吹かされて、翻訳される([RFC2617] (Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., and L. Stewart, “HTTP Authentication Basic and Digest Access Authentication,” .), section 1.2.にしたがって)場合がある。 例えば、 Authorization OAuth realm= http //sp.example.com/ , oauth_consumer_key= 0685bd9184jfhq22 , oauth_token= ad180jjd733klru7 , oauth_signature_method= HMAC-SHA1 , oauth_signature= wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D , oauth_timestamp= 137131200 , oauth_nonce= 4572616e48616d6d65724c61686176 , oauth_version= 1.0 5.4.2. WWW-Authenticate Header サービスプロバイダは、コンシューマの保護されたリソースへの要求において、OAuth HTTP WWW-Authenticateヘッダを返すことで拡張のサポートを示しても良い [RFC2617]のように、このようなレスポンスは、追加のHTTP WWW-Authenticate ヘッダを含む可能性がある。 例えば、 WWW-Authenticate OAuth realm= http //sp.example.com/ realmパラメータは、RFC2617 1.2節のように、保護対象の領域を定義する。 6.Authenticating with OAuth OAuth認証は、ユーザが自分のCredentialsを コンシューマと共有すること無しに、保護されたリソースへのアクセスを許可するプロセスである。 OAuthは、サービス・プロバイダが生成したトークンを、ユーザのCredentialsの替わりに 保護されたリソースへのアクセスで用いる。 このプロセスは以下の2つの形式のトークンを用いる。 リクエスト・トークン コンシューマが、ユーザに対し保護されたリソースへのアクセスを要求する際に用いる。 ユーザ認証済みのリクエスト・トークンはアクセス・トークンと、唯一度だけ交換され、これ以外の用途に用いてはならない。 リクエスト・トークンは限定された(有限の)の寿命を持つことが推奨される。 アクセス・トークン コンシューマが、ユーザの代わりに保護されたリソースへのアクセスをする場合に用いられる。 アクセス・トークンは、特定の保護されたリソースへのアクセスに限ってもよいし、寿命があっても良い。 サービス・プロバイダは、アクセス・トークンの無効化をユーザに許可すべきである。 アクセス・トークンのみが、保護されたリソースへのアクセスに使われるべき(SHALL??)である。 OAuth認証は、以下の3つのステップで行われる。 コンシューマは、未認証のリクエスト・トークンを得る。 ユーザはリクエスト・トークンを認可する。 コンシューマはリクエスト・トークンとアクセス・トークンを交換する。 6.1. Obtaining an Unauthorized Request Token コンシューマは、サービス・プロバイダにトークン・発行を要求することで、未認証のトークンを得る。 リクエスト・トークンの唯一の目的は、ユーザの承認を受信することで、アクセス・トークンを得るためにのみ使用できる。 リクエスト・トークンのプロセスは以下のようになる。 6.1.1 Consumer Obtains a Request Token リクエスト・トークンを得るため、コンシューマは、サービス・プロバイダのリクエスト・トークンURLにHTTPリクエストを送信する。 サービス・プロバイダの文書では、この要求のためのHTTPメソッドの仕様を定めており、HTTP POST が推奨される。 リクエストは、署名された上、以下のパラメータを含んでいなければならない。 oauth_consumer_key コンシューマの鍵 oauth_signature_method コンシューマがリクエストへの署名に用いた方法 oauth_signature 署名(Signing Requests参照) oauth_timestamp タイムスタンプ(Nonce and Timestamp参照) oauth_nonce 乱数(Nonce and Timestamp参照) oauth_version オプション。存在した場合には、その値は1.0でなければならない。 省略された場合、サービス・プロバイダはプロトコルのバージョンを1.0とみなさなければならない. 1.0でない場合のサービス・プロバイダの応答は未定義。 Additional parameters その他のパラメータ。(サービス・プロバイダが定義する) 6.1.2. Service Provider Issues an Unauthorized Request Token サービス・プロバイダーは、署名とコンシューマ鍵を検証する。 検証が成功すれば、サービス・プロバイダはリクエスト・トークンと、トークン秘密データを生成して、 サービス・レスポンス・パラメータで定義されたように、HTTP レスポンスボディ中にいれて返す。 サービス・プロバイダは、 ユーザの許可を得る家庭で、ユーザが首尾よくアクセスを許可するまで、 リクエストトークンが、アクセス・トークンと交換されないことを保証しなければならない。 レスポンスは、以下のパラメータを含む。 oauth_token リクエスト・トークン. oauth_token_secret トークン・秘密データ. Additional parameters サービス・プロバイダが定義するなんらかの追加パラメータ. リクエストが検証に失敗するか、なんらかの理由で拒絶された場合、 HTTPレスポンス・コードで定義された適当なコードを返すべきである。 サービス・プロバイダは、リクエストの拒絶理由を示す詳細情報を、 サービス・プロバイダ・レスポンス・パラメータで定義される、HTTP レスポンス・ボディ中に入れて返しても良い。 6.2. Obtaining User Authorization コンシューマは、ユーザの許諾が得られるまで、リクエストトークンを使うことはできない。 ユーザの許諾を得るには以下のステップが含まれる。 6.2.1. Consumer Directs the User to the Service Provider コンシューマが、リクエストトークンをアクセス・トークンと交換できるようにするためには、 コンシューマは、 ユーザをサービス・プロバイダに案内することで、ユーザからの承認を得なければならない。 コンシューマは、HTTP GETリクエストを、サービス・プロバイダのユーザ認可URLに以下のパラメータをつけて、 作成する。 Additional parameters Any additional parameters, as defined by the Service Provider. oauth_token オプション。前のステップで取得されたリクエスト・トークン。サービスプロバイダは、要求に応じてこのパラメータを宣言するか、このパラメータなしにユーザ承認URLに対するリクエストを受け付ける。 oauth_callback オプション。ユーザ承認(ユーザ承認参照)が完了した時、ユーザをコンシューマにリダイレクトして戻すためにサービスプロバイダが用いる。 Additional parameters サービスプロバイダが定義するその他のパラメータ Once the request URL has been constructed the Consumer redirects the User to the URL via the User’s web browser. If the Consumer is incapable of automatic HTTP redirection, the Consumer SHALL notify the User how to manually go to the constructed request URL. Note If a Service Provider knows a Consumer to be running on a mobile device or set-top box, the Service Provider SHOULD ensure that the User Authorization URL and Request Token are suitable for manual entry. 6.2.2. Service Provider Authenticates the User and Obtains Consent The Service Provider verifies the User’s identity and asks for consent as detailed. OAuth does not specify how the Service Provider authenticates the User. However, it does define a set of REQUIRED steps * The Service Provider MUST first verify the User’s identity before asking for consent. It MAY prompt the User to sign in if the User has not already done so. * The Service Provider presents to the User information about the Consumer requesting access (as registered by the Consumer Developer). The information includes the duration of the access and the Protected Resources provided. The information MAY include other details specific to the Service Provider. * The User MUST grant or deny permission for the Service Provider to give the Consumer access to the Protected Resources on behalf of the User. If the User denies the Consumer access, the Service Provider MUST NOT allow access to the Protected Resources. When displaying any identifying information about the Consumer to the User based on the Consumer Key, the Service Provider MUST inform the User if it is unable to assure the Consumer’s true identity. The method in which the Service Provider informs the User and the quality of the identity assurance is beyond the scope of this specification. 6.2.3. Service Provider Directs the User Back to the Consumer After the User authenticates with the Service Provider and grants permission for Consumer access, the Consumer MUST be notified that the Request Token has been authorized and ready to be exchanged for an Access Token. If the User denies access, the Consumer MAY be notified that the Request Token has been revoked. If the Consumer provided a callback URL in oauth_callback (as described in Consumer Directs the User to the Service Provider (Consumer Directs the User to the Service Provider)), the Service Provider constructs an HTTP GET request URL, and redirects the User’s web browser to that URL with the following parameters oauth_token The Request Token the User authorized or denied. The callback URL MAY include Consumer provided query parameters. The Service Provider MUST retain them unmodified and append the oauth_token parameter to the existing query. If no callback URL was provided, the Service Provider instructs the User to manually inform the Consumer that authorization has completed.
https://w.atwiki.jp/m_shige1979/pages/1448.html
一部のファイルが存在する場合に表示 概要 パスのファイルが存在する場合に指定のヘッダーを付与して表示させる サンプル index.js // サーバ、ルーティング、リクエストメソッドのモジュールを読み込み var server = require("./server"); var router = require("./router"); var request = require("./request"); var requestHandlers = require("./requestHandlers"); // リクエストのハンドラを設定 var handle = {} handle["/"] = requestHandlers.start; handle["/start"] = requestHandlers.start; handle["/upload"] = requestHandlers.upload; handle["/view1"] = requestHandlers.view1; // ハンドラパラメータを追加 server.start(router.route, handle, request); server.js var http = require("http"); var url = require("url"); var util = require( util ); var formidable = require("formidable"); var sys = require( sys ); qs = require( querystring ); function start(route, handle, param) { function onRequest(request, response) { var pathname = url.parse(request.url).pathname; var query = url.parse(request.url, true).query; console.log("Request for " + pathname + " received."); console.log("Request for RequestString = " + query + " received."); console.log(""); // queryStringよりGETパラメータを取得 var _req_data = {}; _req_data.get = query; _req_data.post = null; _req_data.file = null; // form情報よりPOSTパラメータを取得 var form = new formidable.IncomingForm(); // upload先を指定 form.uploadDir = d /temp ; // パース form.parse(request, function(err, fields, files) { _req_data.post = fields; _req_data.file = files; console.log( received upload \n\n ); console.log(sys.inspect({get _req_data.get, post _req_data.post, file _req_data.file})); // ルーティング route(handle, pathname, response, request, _req_data); }); } http.createServer(onRequest).listen(8888); console.log("Server has started."); } exports.start = start; router.js var fs = require("fs"); var path = require("path"); function route(handle, pathname, response, request, _req_data) { console.log("About to route a request for " + pathname); if (typeof handle[pathname] === function ) { handle[pathname](response, request, _req_data); } else { var _path = "." + pathname; var file_exists = path.existsSync(_path); if(file_exists){ // 拡張子取得 var ext = ""; var n = 0; if ((n = _path.lastIndexOf(".")) != -1) { ext = _path.substring(n+1); } // ファイルを読み込み fs.readFile(_path, "binary", function(error, file) { if(error) { response.writeHead(500, {"Content-Type" "text/plain"}); response.write(error + "\n"); response.end(); } else { console.log(_path); // 拡張子に合わせて対応 if(ext == "jpg" || ext == "jpeg"){ response.writeHead(200, {"Content-Type" "image/jpeg"}); }else if(ext == "gif"){ response.writeHead(200, {"Content-Type" "image/gif"}); }else if(ext == "png"){ response.writeHead(200, {"Content-Type" "image/png"}); }else if(ext == "htm" || ext == "html"){ response.writeHead(200, {"Content-Type" "text/html"}); }else if(ext == "css"){ response.writeHead(200, {"Content-Type" "text/css"}); }else if(ext == "js"){ response.writeHead(200, {"Content-Type" "text/javascript"}); }else{ response.writeHead(200, {"Content-Type" "text/plain"}); } // 出力 response.write(file, "binary"); response.end(); } }); }else{ console.log("No request handler found for " + pathname); response.writeHead(404, {"Content-Type" "text/plain"}); response.write("404 Not found"); response.end(); } } } exports.route = route; requestHandlers.js var querystring = require("querystring"); var fs = require("fs"); var sys = require( sys ); var exec = require("child_process").exec; function start(response, request, _req_data) { console.log("Request handler start was called."); var body = html + head + meta http-equiv="Content-Type" content="text/html; + charset=UTF-8" / + /head + body + form action="/upload?zzz=111 xxx=666" method="post" enctype="multipart/form-data" + input type="text" name="text1" / br / + input type="text" name="text2" / br / + input type="text" name="text3[aaa]" / br / + input type="text" name="text3[bbb]" / br / + input type="checkbox" name="text4" checked/ br / + input type="file" name="upload1" / br / + input type="file" name="upload2" / br / + input type="submit" value="upload submit" / + /form + br / + form action="/view1" method="post" + input type="text" name="text1" / br / + input type="text" name="text2" / br / + input type="submit" value="view1 submit" / + /form + /body + /html ; response.writeHead(200, {"Content-Type" "text/html"}); response.write(body); response.end(); } function upload(response, request, _req_data) { console.log("Request handler upload was called."); var _upload2 = _req_data.file.upload2; var _upload_path = "./" + _upload2.name; console.log(_upload_path); // ファイル移動 fs.rename(_upload2.path, _upload_path, function(err) { if (err) { fs.unlink(_upload_path); fs.rename(_upload2.path, _upload_path); } }); // response.writeHead(200, {"Content-Type" "text/plain"}); response.write("Hello Upload"); response.end(); } function view1(response, request, _req_data) { console.log("Request handler start was called."); var body = html + head + meta http-equiv="Content-Type" content="text/html; + charset=UTF-8" / + /head + body + form action="/start" method="post" + input type="text" name="text1" / br / + input type="text" name="text2" / br / + input type="submit" value="start submit" / + /form + br / + /body + /html ; response.writeHead(200, {"Content-Type" "text/html"}); response.write(body); response.end(); } exports.start = start; exports.upload = upload; exports.view1 = view1; request.js function req_data(queryString) { var _param = {}; // リクエストを取得 var _list = (new String(queryString)).split( ); for(var _key in _list){ var _col = _list[_key].split("="); _param[_col[0]] = _col[1]; } return _param; } exports.req_data = req_data; 結果 コマンド D \Tools\Works\nodejs_test\sample11 node index.js Server has started. Request for /sample.htm received. Request for RequestString = [object Object] received. received upload { get {}, post {}, file {} } About to route a request for /sample.htm path.existsSync is now called `fs.existsSync`. ./sample.htm Request for /css/sample.css received. Request for RequestString = [object Object] received. received upload { get {}, post {}, file {} } About to route a request for /css/sample.css Request for /js/sample.js received. Request for RequestString = [object Object] received. received upload { get {}, post {}, file {} } About to route a request for /js/sample.js ./css/sample.css ./js/sample.js Request for /0001.jpg received. Request for RequestString = [object Object] received. received upload { get {}, post {}, file {} } About to route a request for /0001.jpg ./0001.jpg Request for /favicon.ico received. Request for RequestString = [object Object] received. received upload { get {}, post {}, file {} } About to route a request for /favicon.ico No request handler found for /favicon.ico 画面 htmlやcss、jsを各リクエストで表示させる
https://w.atwiki.jp/prima/pages/829.html
[429] Client error `POST https //webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response { __type com.amazon.paapi5#TooManyRequestsException , Errors [{ Code TooManyRequests , Message The request was de (truncated...) Blogs on エルンスト・コツープ #blogsearch レパートリー リヒャルト・ワーグナー [部分編集] リヒャルト・ワーグナー さまよえるオランダ人エリック トリスタンとイゾルデメロート Last Update 2015/07/19 18 32ページ先頭へ
https://w.atwiki.jp/suffix/pages/277.html
javascript側 form onsubmit ="XMLHttpRequestオブジェクトを作成する関数" input type ="text" name ="sample" ※1 input type ="submit" value="送信" /form function createHttpRequest(){ if(window.XMLHttpRequest){ return new XMLHttpRequest(); } else if(window.ActiveObject){ try{ return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e2) { return null; } } } function XMLHttpRequestオブジェクトを作成する関数(){ var request = createHttpRequest(); request.open("GETやPOST等の指定",URL,同期非同期); request.setRequestHeader( Content-type , application/x-www-form-urlencoded ); request.onreadystatechange = function(){ ※2 if(request.readyState==4){ ※3 読み込んだときの処理を記述。コールバック関数を指定するなど。 } } request.send(データ); ※4 } ※1 結果反映用テキスト。 xmlhttprequestでは$_POST["sample"]には値入らず。 $_POST["sample"]に値として入れるには、request.send(データ)の部分に変数a="値" 変数b="値"という形で送る必要がある。 詳しくは、http //detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1411752859参照。 ※2 readystatechange以外にも以下のようなものがある。 onloadstart, onerror, onabort, onload, onprogress, ontimeout, onloadend ※3 readyStateの4(DONE)とready.statusの200はよく使うので覚えておこう。 ※4 何も送らない場合はrequest.send("")またはrequest.send(null) php側 $phpで使用する変数 = $_POST[ sample ]; ※1 何らかの処理 echo "{ 連想名 $result}";等 ※2 ※1 $_はスーパーグローバル変数と言い、javascript側でGETやPOST指定で送った変数を受け取れる。 ※2 echoを使って結果を書き出すことで、JSON形式での結果がresponseTextとかに返るのでやりやすい。本例はphpだが、サーバー側に選ぶプログラミング言語やフレームワークによって変わってくる。例えば、node.jsならexpresstとかのモジュールを読み込んで、res.send("hoge")。javaならServlet等をextendsし、レスポンスを書き込む等。 参考: http //uhyohyohyo.sakura.ne.jp/javascript/13_1.html http //www.w3.org/TR/XMLHttpRequest2/#interface-xmlhttprequest
https://w.atwiki.jp/psemu/pages/261.html
ゲーム概要(wikipedia) イカサマ麻雀 ゲーム [429] Client error `POST https //webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response { __type com.amazon.paapi5#TooManyRequestsException , Errors [{ Code TooManyRequests , Message The request was de (truncated...) [429] Client error `POST https //webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response { __type com.amazon.paapi5#TooManyRequestsException , Errors [{ Code TooManyRequests , Message The request was de (truncated...)
https://w.atwiki.jp/pqjp/pages/61.html
?xml version="1.0"? TextLibrary Text tag="[QUEST_Q0I3_ACTION]" Fight the Slavers /Text Text tag="[QUEST_Q0I3_FAILURE]" There were more slavers than you thought. You must try again. /Text Text tag="[QUEST_Q0I3_KILL]" The Slavers have been routed. You may now return to the Emperor and tell him of your success. /Text Text tag="[QUEST_Q0I3_RETURN]" Visit the Emperor /Text Text tag="[QUEST_Q0I3_REWARD]" The Emperor is pleased with you. He not only rewards you with gold, but also with a medal. /Text Text tag="[QUEST_Q0I3_STEP1]" You must travel to the Slaver Camp and fight them. /Text Text tag="[QUEST_Q0I3_STEP2]" You must now return to the Emperor for your reward. /Text Text tag="[QUEST_Q0I3_QMNAME0]" Minotaur Slaver /Text Text tag="[QUEST_Q0I3_QMHELP0]" This Minotaur has improved armor and a whip that deals damage whenever he matches Yellow Gems. /Text /TextLibrary
https://w.atwiki.jp/pqjp/pages/130.html
?xml version="1.0"? TextLibrary Text tag="[QUEST_Q1Q8_ACTION]" Make Some Noise /Text Text tag="[QUEST_Q1Q8_ACTION1]" Make More Noise /Text Text tag="[QUEST_Q1Q8_FAILURE]" Kelthurax is still not awake - you might need to make some more noise. /Text Text tag="[QUEST_Q1Q8_MSGA]" You make a lot of noise, but there is no sign of Kelthurax. /Text Text tag="[QUEST_Q1Q8_MSGB]" All the noise you are making has attracted a Wyvern. /Text Text tag="[QUEST_Q1Q8_MSGC]" The sound of combat with the Wyvern seems to have woken Kelthurax. He bursts up out of the ground and confronts you... /Text Text tag="[QUEST_Q1Q8_REWARD]" Kelthurax has ignored your plea for help. It looks like you are on your own! /Text Text tag="[QUEST_Q1Q8_QMHELP0]" This Wyvern seems larger than most. Its stats are slightly higher, especially in Battle and Air Mastery. /Text /TextLibrary
https://w.atwiki.jp/bzspirit/pages/195.html
[429] Client error `POST https //webservices.amazon.co.jp/paapi5/getitems` resulted in a `429 Too Many Requests` response { __type com.amazon.paapi5#TooManyRequestsException , Errors [{ Code TooManyRequests , Message The request was de (truncated...) リリース 1995年11月22日 収録時間 49分57秒 レーベル Rooms RECORDS プロデュース 松本孝弘 収録曲 spirit loose ザ・ルーズ ねがい ( BUZZ!! STYLE) 夢見が丘 BAD COMMUNICATION (000-18) 消えない虹 love me, I love you (with G Bass) LOVE PHANTOMアルバム初収録。 敵がいなけりゃ 砂の花びら キレイな愛じゃなくても BIG drive to MY WORLD spirit loose II 名前 コメント
https://w.atwiki.jp/pqjp/pages/179.html
?xml version="1.0"? TextLibrary Text tag="[QUEST_Q2J4_ACTION1]" Battle the Medusa /Text Text tag="[QUEST_Q2J4_ACTION2]" Shop for Griffonskin /Text Text tag="[QUEST_Q2J4_FAILURE]" You have failed to defeat the Medusa. You must try again. /Text Text tag="[QUEST_Q2J4_KILL]" You have defeated the Medusa. You retrieve some blood with which to sign the documents. /Text Text tag="[QUEST_Q2J4_R0]" Jarl apos;s Hammer and Cloak /Text Text tag="[QUEST_Q2J4_R1]" Jotun apos;s Helm and Boots /Text Text tag="[QUEST_Q2J4_RETURN]" Talk to the Giants /Text Text tag="[QUEST_Q2J4_REWARD]" You have succeeded! Jarl and Jotun give you all the items they no longer want. /Text Text tag="[QUEST_Q2J4_STEP1]" You must approach Jarl and Jotun and see if they can reach a truce. /Text Text tag="[QUEST_Q2J4_STEP2]" You must travel to Werret to find a Medusa and to Gruuldok to get some Griffonskin. /Text Text tag="[QUEST_Q2J4_STEP3]" You must return to the Giants apos; Walk to meet with Jarl and Jotun. /Text Text tag="[QUEST_Q2J4_TALK1]" Talk to Jarl /Text Text tag="[QUEST_Q2J4_TALK2]" Talk to Jotun /Text /TextLibrary
https://w.atwiki.jp/voice2012/pages/127.html
タスク:エルへ調査請求依頼 Thank you for your message. We are sorry to hear that your items have not arrived yet. We would like to request for an investigation on the parcel to our carrier. We will apply tomorrow, and it usually needs 2 weeks ~ 1 month to receive a report from them. Please kindly be patient and wait, as we cannot take any action like refund until we receive their report.